<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
   <title>PushButton Engine Manual</title>
</head>

<body>

<image src="images/small_pbe_logo_black.png" align="right"/>

<h1>PushButton Engine Manual</h1>

<p>Welcome to the PushButton Engine! <a href="http://www.pushbuttonengine.com/">PushButton Engine</a> is an open source Flash game framework.</p>

<p>This manual covers the basics of developing with the PushButton Engine. The various sections linked on this page cover different parts of the engine. Everything from <a href="#Lessons">lessons on how to get started</a> to <a href="#videos">video talks about the engine</a> to <a href="#Reference">references on many subsystems in the engine</a> are included.</P>

<p>The most important part of PushButton Engine is its community. Be sure to visit our <a href="http://www.pushbuttonengine.com/community/">community page</a> to see what's going on in the forums, what the latest PBE games are, and more.</p>

<h2>First Steps: PBE In 30 Seconds</h2>
	
<p>Here is everything you need to know about PBE in a short list:</p>

<ol>
	<li>Download PBE <a href="http://www.pushbuttonengine.com/download">here</a>, or get it <a href="http://code.google.com/p/pushbuttonengine/source/checkout">from our Google Code SVN</a>.
	<li>The engine code is in src/. The SWC is in bin/ (if you downloaded a zip).</li>
	<li>Here is the <a href="http://pbe.zaalabs.com/api/index.html">API reference</a>.</li>
	<li>See <a href="#Lessons">Lesson #1</a> for details on how to get started with using PBE, including how to set it up with your favorite Flash tool/IDE.</li>
	<li>Visit our <a href="#GettingStartTutorials">community forums, and IRC.</a>
</ol>

<p>If you like more verbose explanations, we have an <a href="overview.html">overview</a> that explains what PushButton Engine all about, what component are, and how everything fits together.</p>

<h2><a name="GettingStartTutorials">Community</a></h2>

<p>Our community is built around teaching people how to build great Flash games using PushButton Engine. We expect PBE users to have some programming background, but if you run into problems, please visit our <a href="http://www.pushbuttonengine.com/forum/">forums and let us know</a>. We are always improving.</p>

<p>The best place to get involved in our community is on the <a href="http://www.pushbuttonengine.com/community/">PushButton Engine community page</a> and on our IRC channel (<a href="http://webchat.freenode.net/">#pbengine on freenode.net</a>).</p>

<p>PBE community member Mas runs the <a href="http://blog.makeyourflashgame.com/">MakeYourFlashGame blog</a> where you can find <a href="http://blog.makeyourflashgame.com/tag/pbengine">a series of good articles and tutorials on PBE</a>.</p>

<h2><a name="Lessons">Lessons</a></h2>

<p>Lessons are short tutorials on how to perform tasks with the engine. New lessons will be posted as they are completed.</p>

<ul>
<li><b>Lesson #1: How To Set Up Your IDE</b></li>
  <ul>
    <li><b><a href="Lesson-01-FlashDevelop.html">FlashDevelop</a></b><br/>How to set up your build environment for FlashDevelop</li>
    <li><b><a href="Lesson-01-FlashCS4.html">Flash CS4</a></b><br/>How to set up your build environment for Flash CS4</li>
    <li><b><a href="Lesson-01-FlexBuilder.html">Flex Builder</a></b><br />How to set up your build environment with Flex/Flash Builder.</li>
  </ul>
<li><b><a href="Lesson-02.html">Lesson #2: Adding a Simple Shape</a></b><br/>How to create a simple shape.</li>
<li><b><a href="Lesson-03.html">Lesson #3: Adding Control with a Custom Component</a></b><br/>How to move a shape with a custom component.</li>
<li><b><a href="Lesson-04.html">Lesson #4: Keyboard Input for Player Control</a></b><br/>How to extend the control component to respond to keyboard input.</li>
<li><b><a href="Lesson-05.html">Lesson #5: Using and Embedding Images</a></b><br/>How to embed and display graphics assets.</li>
</ul>

<h2><a name="videos">Video Talks</a></h2>

<p>We've prepared several videos discussing different parts of the engine. Most of them are short, around 5 minutes in length. They cover various important high level pieces of the engine.</p>

<ul>
	<li><b><a href="http://www.youtube.com/watch?v=auaqZzcjl-Y">Understanding Components</a></b> which explains what components are, and why they are a good approach for building gameplay.</li>
	<li><b><a href="http://www.youtube.com/watch?v=nYUwKGE2Efg">Resources</a></b> which discusses how resources are managed in PBE.</li>
	<li><b><a href="http://www.youtube.com/watch?v=nEZoxrP4JQs">User Interfaces</a></b> which talks about how to use Rendering2D with your user interfaces.</li>
	<li><b><a href="http://www.youtube.com/watch?v=hvAbVpS0lJg">Using the Profiler</a></b> which talks about how to use PBE's built in profiler to optimize your game.</li>
</ul>

<h2><a name="Reference">Reference</a></h2>

<p>These sections go into detail on how specific parts of the engine work.</p>

<ul>
<li><b><a href="04-Components.html">Components</a></b><br/>How to write and use components.</li>
<li><b><a href="05-XMLFormat.html">Levels and Serialization</a></b><br/>How our level files are laid out; details on the serialization system. How to manage levels and build your game on them.</li>
<li><b><a href="06-ResourceManager.html">Resource Manager</a></b><br/>How to load and use images, XML, sounds, and add your own resource types.</li>
<li><b><a href="07-StyleGuide.html">Style Guide</a></b><br/>How code ought to be written.</li>
<li><b><a href="08-FlowOfExecution.html">Flow Of Execution</a></b><br/>What code is run when? How do you hook into PushButton Engine's time-related callbacks?</li>
<li><b><a href="09-InputMap.html">Handling Input</a></b><br/>How is input handled by the engine? In addition, a list of the names of all the keys that can be used in an InputMap.</li>
<li><b><a href="10-Rendering2D.html">Rendering2D</a></b><br/>A framework for componentized 2d rendering. How to extend and use it.</li>
<li><b><a href="11-Names.html">Names</a></b><br/>How to name entities and components. How to find them by name.</li>
<li><b><a href="12-Metadata.html">Metadata</a></b><br/>Supported metadata and what it means.</li>
</ul>

</body>

</html>